package org.jeecg.modules.business.doc.outbound.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;
import org.jeecg.modules.business.doc.outbound.entity.WmsOutReceiptLoadCheck;
import org.jeecg.modules.business.doc.outbound.entity.vo.*;

import java.util.List;

/**
 * @Description: 出库单 装车复核
 * @Author: jeecg-boot
 * @Date: 2023-08-09
 * @Version: V1.0
 */
public interface IWmsOutReceiptLoadCheckService extends IService<WmsOutReceiptLoadCheck> {


    /**
     * 查询所有未复核信息
     * @param receiptId
     * @param materialName
     * @param batchCode
     * @return
     */
    IPage<OutboundReceiptLoadCheckFullVO> listAllUnCheck(IPage<WmsOutReceiptLoadCheck> page,String receiptId, String materialName, String batchCode, String carNumber);

    /**
     * 查询所有已复核信息
     * @param receiptId
     * @param materialName
     * @param batchCode
     * @return
     */
    IPage<OutboundReceiptLoadCheckVO> listAllChecked(IPage<WmsOutReceiptLoadCheck> page,String receiptId, String materialName, String batchCode);

    /**
     * 增加复核信息
     * @param addLoadCheckVO
     */
    void addCheckInfo(OutboundAddLoadCheckVO addLoadCheckVO);

    /**
     * 取消复核
     * @param cancelLoadCheckVO
     */
    void cancelPick(OutboundCancelLoadCheckVO cancelLoadCheckVO);

    /**
     * 根据任务物料id取消复核
     * @param cancelLoadCheckByIdVO
     */
    void cancelPickByTaskMaterialId(OutboundCancelLoadCheckByIdVO cancelLoadCheckByIdVO);

    /**
     * c
     * @param checkId
     */
    void checkOut(String checkId);

    /**
     * 装车复核时扫码查询待装车复核物料
     * @param name
     * @param receiptId
     * @return
     */
    List<OutboundReceiptLoadCheckFullVO> getLoadCheckByNameAndTaskId(String name, String receiptId);


}
